The high level architecture (HLA) is a known software structure for generating a high level computer simulation from a group of lower level computer simulations. The HLA provides a structure having rules by which software developers can generate individual lower level software simulations so that they are reusable and can be used by a variety of higher level simulations.
Many complex higher level simulations simulate an overall system having system portions, which can be provided as simulations to other higher level simulations. For example, many higher level simulations require lower level simulations of human interactions, simulations of displays such as graphical user interfaces, and simulations of specific physical hardware. It is be useful to provide such lower level simulations in a reusable form, so that they can be used by a variety of higher level simulations.
Prior to development of the HLA, it was often necessary to extensively modify the lower level simulations to adapt them for use in each of the higher level simulations. For some higher level simulations, it was necessary to generate entirely new lower level simulations.
Reusability of lower level simulations is but one desirable characteristic provided by the HLA. Reusability, as described above, means that a particular lower level simulation can be reused by a variety of higher level simulations. Interoperability is another desirable characteristic provided by the HLA. Interoperability provides an ability for the lower level simulations to be distributed among a variety of physical computing platforms, which can also be of different types. Therefore, the individual lower level simulations that are combined in a higher level simulation can be distributed among a variety of computing platforms coupled together with a network.
As but one example, consider a situation in which a new weapons system is developed for use on an aircraft, and the new weapons system is simulated in a new weapons system computer simulation. Rather than generate, for example, a new aircraft computer simulation in which to use the new weapons system computer simulation, it would be desirable to provide reusability, which would allow use of an existing aircraft computer simulation. Furthermore, it would be desirable to provide interoperability, which would allow the new aircraft computer simulation to run on a first computer platform and the new weapons system computer simulation to run on a second computer platform. The HLA was developed to provide reusability and interoperability.
HLA simulations, also referred to herein as “HLA federation executions,” are composed of lower level simulations call “federates” which combine into a high level simulation called a “federation.” A federate can exist with multiple instances in a federation. For example, there can be several instances of a simulation of a particular weapons system, each a federate to a high level aircraft simulation, which can be the federation. Federates can also include system functions such as interfaces to human operators, interfaces to real hardware, and interfaces to general software functions such as data collection, data analysis, and data display. Federates can subscribe to and resign from a federation either statically or dynamically as the higher level simulation executes.
The HLA includes three primary components, HLA rules, HLA interface specifications, and an HLA object model template (OMTs). The HLA rules include both federation rules and federate rules. The federation rules include a requirement for a federation object model (FOM) in compliance with the OMT, and documentation thereof. The federation rules also establish a run-time infrastructure (RTI) in compliance with the HLA interface specifications. The federate rules include a requirement for a federate simulation object model (SOM) in compliance with the OMT, and documentation thereof. The federate rules make use of the RTI and specify a format for data exchange with other members of a federation by way of the RTI. The HLA interface specification identifies how federates interact with the federation and with each other.
The RTI provides software services to support HLA-compliant simulations. Different embodiments of the RTI software are possible. One exemplary version of RTI software was provided by the Defense Modeling and Simulation Office (DMSO) of the Department of Defense (DOD) as RTI-NG 1.3.
The HLA object model template (OMT) mentioned above requires a variety of elements within object software, including but not limited to, an object class structure table, an object interaction table, an attribute/parameter table, and an FOM/SOM lexicon. Essentially, the OMT requires external visibility of all characteristics required by external software in order to interface to a federation object or a federate object.
As a federation executes, in general, only the simulation outputs from the federation are known to a user. Intermediate transactions and results between federates are not generally visible to the user. This generally makes the HLA federation execution difficult to debug if an error occurs. It can also make federation execution difficult to interpret if results are unexpected.